/*
 * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package top.continew.admin.cakerun.model.resp;

import lombok.Data;

import io.swagger.v3.oas.annotations.media.Schema;

import top.continew.admin.common.base.model.resp.BaseResp;
import java.io.Serial;
import java.time.*;
import java.math.BigDecimal;

/**
 * 订单明细信息
 *
 * @author tangyu
 * @since 2025/07/19 16:39
 */
@Data
@Schema(description = "订单明细信息")
public class OrderDetailResp extends BaseResp {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 业务时间
     */
    @Schema(description = "业务时间")
    private LocalDate businessTime;

    /**
     * 添加时间
     */
    @Schema(description = "添加时间")
    private LocalDateTime addTime;

    /**
     * 订单ID
     */
    @Schema(description = "订单ID")
    private String orderId;

    /**
     * 优惠金额
     */
    @Schema(description = "优惠金额")
    private BigDecimal discountAmount;

    /**
     * 原始业务类型
     */
    @Schema(description = "原始业务类型")
    private String originalBizType;

    /**
     * 押金金额
     */
    @Schema(description = "押金金额")
    private BigDecimal depositAmount;

    /**
     * 美团退款金额
     */
    @Schema(description = "美团退款金额")
    private BigDecimal mtRefund;

    /**
     * 配送优惠金额
     */
    @Schema(description = "配送优惠金额")
    private BigDecimal deliverDiscountFee;

    /**
     * 争议订单号
     */
    @Schema(description = "争议订单号")
    private String disputeOrderNo;

    /**
     * 实付金额
     */
    @Schema(description = "实付金额")
    private BigDecimal realPayed;

    /**
     * 业务成本
     */
    @Schema(description = "业务成本")
    private BigDecimal bizCost;

    /**
     * 账户ID
     */
    @Schema(description = "账户ID")
    private String accountId;

    /**
     * 团购收入
     */
    @Schema(description = "团购收入")
    private BigDecimal groupBuyIncoming;

    /**
     * 订单创建时间
     */
    @Schema(description = "订单创建时间")
    private LocalDateTime orderCreateTime;

    /**
     * 结算状态
     */
    @Schema(description = "结算状态")
    private Integer traceSettleStatus;

    /**
     * 交易开始时间
     */
    @Schema(description = "交易开始时间")
    private LocalDateTime dealStartTime;

    /**
     * 券包ID
     */
    @Schema(description = "券包ID")
    private String voucherPackageId;

    /**
     * 数据时间
     */
    @Schema(description = "数据时间")
    private LocalDateTime dataTime;

    /**
     * 退款金额
     */
    @Schema(description = "退款金额")
    private BigDecimal refund;

    /**
     * 账户名称
     */
    @Schema(description = "账户名称")
    private String accountName;

    /**
     * 商家自配送费
     */
    @Schema(description = "商家自配送费")
    private BigDecimal partnerSelfDeliverFee;

    /**
     * 交易ID
     */
    @Schema(description = "交易ID")
    private String dealId;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;

    /**
     * 流水类型显示名称
     */
    @Schema(description = "流水类型显示名称")
    private String traceTypeShowName;

    /**
     * 门店ID
     */
    @Schema(description = "门店ID")
    private String poiId;

    /**
     * 门店城市
     */
    @Schema(description = "门店城市")
    private String poiCity;

    /**
     * 门店名称
     */
    @Schema(description = "门店名称")
    private String poiName;

    /**
     * 储值卡扣款金额
     */
    @Schema(description = "储值卡扣款金额")
    private BigDecimal savingCardDeductAmount;

    /**
     * 配送费
     */
    @Schema(description = "配送费")
    private BigDecimal deliveryFee;

    /**
     * 原始金额
     */
    @Schema(description = "原始金额")
    private BigDecimal originalAmount;

    /**
     * 应付金额
     */
    @Schema(description = "应付金额")
    private BigDecimal due;

    /**
     * 分摊金额
     */
    @Schema(description = "分摊金额")
    private BigDecimal sharedAmount;

    /**
     * 服务费
     */
    @Schema(description = "服务费")
    private BigDecimal service;
}